package com.cskaoyan.javase.array._4operator._1get;

/**
 * @description: 获取数组当中的最值
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

/**
 * 获取数组中的最值: 最简单的方法是采用比较法
 * 假设某个元素是最值,然后遍历数组,逐一比较,然后得出最值
 *
 */
public class Demo {
    public static void main(String[] args) {
        int[] arr = {1, 3, 5, 56, 56, 56, 7, 43, 52, 4234, 234, 234, 23534, 554, 6, 54645, -6, 34523, 334, 534, 5, 324, 32, 4234, 9999};
        arr = new int[]{};
        arr = null;
        System.out.println(getMax(arr));
        System.out.println(getMin(arr));
    }

    //求int数组的最大值
    public static Integer getMax(int[] arr) {
        //null数组
        if (arr == null){
            //return
            //return的解决方案
            /**
             * 1,抛出异常
             * 2,使用对应的包装类型,因为java的自动装箱和拆箱的机制,基本数据类型和对应的包装类型可以无条件互换
             */
            return null;
        }


            //不妨假设第一个元素是最大值
            int max = arr[0];
        //遍历数组求最大值
        for (int a : arr) {
            //逐一比较判断
            if (a > max) {
                //你比我大,你来当老大
                max = a;
            }
        }
        return max;
    }


    //求int数组的最小值
    public static int getMin(int[] arr) {
        //不妨假设第一个元素是最小值
        int min = arr[0];
        //遍历数组求最大值
        for (int i = 1; i < arr.length; i++) {
            if (arr[i] < min) {
                min = arr[i];
            }
        }
        return min;
    }

}
